// 公共数据和方法
import { reactive } from "vue"

/**
 * @description: 处理字符串根据换行或者回车分割为数组
 * @param {str} 需要处理的带有换行或者回车符的字符串
 * @param {del} 是否删除空项
 * @return {targetsArr} 返回处理后的数组
 */
const dealString = (str: string, del: boolean = true): string[] => {
  // 根据换行或者回车进行识别
  let targetsArr: string[] = str.split(/[(\r\n)\r\n]+/);
  targetsArr.forEach((item, index) => {
    // 删除空项
    if (del && !item) {
      targetsArr.splice(index, 1);
    }
  });
  targetsArr = Array.from(new Set(targetsArr)); // 去重
  return targetsArr;
};

/**
 * @description: 获取详细的数据类型
 * @param {x} 需要处理的带有换行或者回车符的字符串
 * @return {type} 具体类型
 */
const getType = (x: unknown): string => {
  const originType = Object.prototype.toString.call(x) // '[object String]'
  const spaceIndex = originType.indexOf(' ') // 7
  const type = originType.slice(spaceIndex + 1, -1) // 'String' -1不要右边的]
  return type.toLowerCase() // 'string'
}
export { dealString, getType }